package cn.b.sky.mes.mm.dao;

import java.util.List;

import cn.b.sky.mes.mm.model.RequirementTriggerMode;
import org.apache.ibatis.annotations.Param;

import cn.b.sky.mes.mm.model.condition.RequirementTriggerModeCondition;

public interface RequirementTriggerModeDao {

  /**
   * 
   * <strong>Title : RequirementTriggerModeListByCondition<br></strong>
   * <strong>Description : </strong>需求触发策略查询<br> 
   * <strong>Create on : 2016-9-9 下午3:22:01<br></strong>
   * <p>
   * @param condition
   * @return
   * List<RequirementTriggerMode>
   * @throws 
   * @author JinQuan.Fu<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<RequirementTriggerMode> RequirementTriggerModeListByCondition(RequirementTriggerModeCondition condition);
  
  /**
   * 
   * <strong>Title : RequirementTriggerModeCountByCondition<br></strong>
   * <strong>Description : </strong>需求触发策略查询记录数<br> 
   * <strong>Create on : 2016-9-9 下午3:23:29<br></strong>
   * <p>
   * @param condition
   * @return
   * int
   * @throws 
   * @author JinQuan.Fu<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int RequirementTriggerModeCountByCondition(RequirementTriggerModeCondition condition);
  
  /**
   * 
   * <strong>Title : InsertRequirementTriggerMode<br></strong>
   * <strong>Description : </strong>需求触发策略添加<br> 
   * <strong>Create on : 2016-9-9 下午3:27:57<br></strong>
   * <p>
   * @param requirementTriggerMode
   * void
   * @throws 
   * @author JinQuan.Fu<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void insertRequirementTriggerMode(RequirementTriggerMode requirementTriggerMode);
  
  /**
   * 
   * <strong>Title : updateRequirementTriggerMode<br></strong>
   * <strong>Description : </strong>需求触发策略修改<br> 
   * <strong>Create on : 2016-9-9 下午3:28:15<br></strong>
   * <p>
   * @param requirementTriggerMode
   * void
   * @throws 
   * @author JinQuan.Fu<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updateRequirementTriggerMode(RequirementTriggerMode requirementTriggerMode);
  
  /**
   * 
   * <strong>Title : deteleRequirementTriggerMode<br></strong>
   * <strong>Description : </strong>需求触发策略删除<br> 
   * <strong>Create on : 2016-9-9 下午3:28:24<br></strong>
   * <p>
   * @param requirementTriggerMode
   * @return
   * String
   * @throws 
   * @author JinQuan.Fu<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void deteleRequirementTriggerMode(@Param("siteCode")String siteCode,@Param("requirementTriggerModeCode")String requirementTriggerModeCode);
  
  /**
   * 
   * <strong>Title : getRequirementTriggerMode<br></strong>
   * <strong>Description : </strong>查询需求触发策略<br> 
   * <strong>Create on : 2016-9-9 下午3:36:11<br></strong>
   * <p>
   * @param siteCode
   * @param requirementTriggerModeCode
   * @return
   * RequirementTriggerMode
   * @throws 
   * @author JinQuan.Fu<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  RequirementTriggerMode getRequirementTriggerMode(@Param("siteCode")String siteCode,@Param("requirementTriggerModeCode")String requirementTriggerModeCode);

  /**
   * 
   * <strong>Title : selectRequirementTriggerModeByLockFlag<br></strong>
   * <strong>Description : </strong>查询非锁定状态下所有需求触发策略<br> 
   * <strong>Create on : 2016-9-10 下午3:08:54<br></strong>
   * <p>
   * @param siteCode
   * @param lockFlag
   * @return
   * List<RequirementTriggerMode>
   * @throws 
   * @author JinQuan.Fu<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<RequirementTriggerMode> selectRequirementTriggerModeByLockFlag(@Param("siteCode")String siteCode,@Param("lockFlag")Integer lockFlag);
}
